/**
 * 
 */
package com.pe.pgn.clubpgn.dao;

import java.util.List;
import java.util.Map;


import com.pe.pgn.clubpgn.domain.ClpbClientePersona;
import com.pe.pgn.clubpgn.domain.ClpbEmpresaCelular;
import com.pe.pgn.clubpgn.domain.ClpbEstadoCivil;
import com.pe.pgn.clubpgn.domain.ClpbTipoDocumentoPersona;
import com.pe.pgn.clubpgn.domain.ClpmUbigeo;
import com.pe.pgn.clubpgn.domain.beans.BNClientesPersona;

/**
 * @author Edwin Farfan
 *
 */
public interface ClientePersonaDao extends GenericDao<ClpbClientePersona, Long>{

	public List<ClpbClientePersona> obtenerClientePersonas();
	public void  guardarClientePersona(ClpbClientePersona clientePersona);
	public BNClientesPersona obtenerClientePersona(Long id);
	public void eliminarClientePersona(Long id);
	public List<BNClientesPersona> busquedaClientesPorFiltros(String nroDocumento, String cliente, String eliminado, String habilitado, 
			String fechaInicio,String fechaFinal);
	
	public List<ClpbTipoDocumentoPersona> listadoDocumentoPersonas();
	public List<ClpmUbigeo> listadoDistritos();
	public List<ClpbEmpresaCelular> listadoEmpresaCelular();
	public List<ClpbEstadoCivil> listadoEstadoCivil();
	public List<Map<String, Object>> verificarDuplicidadDocumento(String documento);
	public int validaDocumento(Long id);
	public boolean clienteTieneDependencias(Long id );
	public List<BNClientesPersona> obtenerBNClientePersonas();
	public List<BNClientesPersona> obtenerListaClientesPersona() throws Exception;
	public List<ClpbEstadoCivil> listarEstadosCiviles(boolean addItemDefault);
	public int obtenerNumeroClientes(String[] filters);
	public List<BNClientesPersona> buscarClientesPersona(int firstResult,
			int maxResults, String orderBy, boolean ascending, String[] filters);
	
}
